package chixing.day05;


import java.util.Arrays;

/**
 * (4)提供 listBorrowedBooks() 方法，打印当前借阅的所有书籍。
 * Library（图书馆类） 有属性: Book[] allBooks（馆藏图书列表 Book[]类型 ）
 * 提供方法 addBook(Book book)：添加新图书。
 * 提供方法 getBookByISBN(String isbn)：查找并返回指定书籍。
 * 提供方法 displayAvailableBooks()：打印所有可借图书。
 */
public class Library {
    public  Book[] allBooks = null;

    public Library(){
        allBooks = new Book[10];
    }
    public Library(Book[] allBooks) {
        this.allBooks = allBooks;
    }

    //查询馆藏图书列表里有几本书
    public int bookNumber(){
        int bookNum = 0;
        for (int i = 0;i < this.allBooks.length; i++){
            if (this.allBooks[i]!=null)
                bookNum++;
        }
        return bookNum;
    }
    //提供方法 addBook(Book book)：添加新图书。先要知道里面有几本书
    public void addBook(Book book){
        int bNum = bookNumber();
        if (bNum >= 10){
            System.out.println("图书馆可放书籍已达上限");
        }else {
            allBooks[bNum] = book;
        }
    }
    //getBookByISBN(String isbn)：查找并返回指定书籍。
    public Book getBookByISBN(String isbn){
        Book book1 = null;
        for (int i = 0;i < allBooks.length;i++){
            if ( isbn.equals(allBooks[i].getBookIsbn())){
                book1 = allBooks[i];
            }
        }
        return book1;
    }

    //displayAvailableBooks()：打印所有可借图书。
    //bookIsbn（书号）、bookTitle（书名）、bookAuthor（作者）available（是否可借）
    public void displayAvailableBooks(){
        System.out.println("-------------------------");
        System.out.println("图书馆中可借书籍有:");
        for ( int i = 0;i < allBooks.length;i++){
            if (allBooks[i].isAvailable() )
                System.out.println(
                        "书号:" + allBooks[i].getBookIsbn() + ";" +
                        "书名:" + allBooks[i].getBookTitle() + ";" +
                        "作者:" + allBooks[i].getBookAuthor() + ";" +
                        "是否可借:" + allBooks[i].isAvailable()
                );
        }
    }

    public Book[] getAllBooks() {
        return allBooks;
    }

    public void setAllBooks(Book[] allBooks) {
        this.allBooks = allBooks;
    }

    @Override
    public String toString() {
        return "Library{" +
                "allBooks=" + Arrays.toString(allBooks) +
                '}';
    }
}
